メインコンテンツまでスキップ

AWS グローバルインフラストラクチャ

  • AWS リージョンとアベイラビリティーゾーン
  • エッジロケーションと Amazon CloudFront
  • AWS マネジメントコンソール、AWS CLI、SDK
  • AWS Elastic Beanstalk
  • AWS CloudFormation

🎯 学習目標

  • AWS グローバルインフラストラクチャの利点を説明

  • アベイラビリティーゾーン (AZ) の概念を理解

  • CloudFront とエッジロケーションの利点を理解

  • AWS サービスのプロビジョニング方法を比較


🌐 AWS グローバルインフラストラクチャの特徴

用語説明
リージョン地理的に分離された複数のデータセンターグループ(例:東京、フランクフルト)
アベイラビリティーゾーン(AZ)同一リージョン内の独立したデータセンターまたはグループ。数十マイルの距離に配置
エッジロケーションユーザーに最も近い場所にキャッシュされたコンテンツを配信(CloudFrontによるCDN機能)

🏪 高可用性の例え:コーヒーショップ

  • 店舗前のパレードにより一時閉店 → 別の店舗で対応可能(= 複数AZの冗長性)

  • AWSの仕組みも同様で、災害や障害があっても別AZで運用を継続可能


✅ リージョン選定の4つの要素

要素内容
1. コンプライアンス国や地域ごとの法的要件(例:EU圏でのデータ保存)
2. 近接性顧客に近いリージョンほどレイテンシーが低く有利
3. 機能の可用性一部サービスは特定のリージョンでのみ提供(例:Amazon Braket)
4. 料金リージョンごとにコストが異なる(例:サンパウロはオレゴンより高い)

🧱 アベイラビリティーゾーン(AZ)

  • 各AZは 冗長な電源、ネットワーク、接続性 を持つ

  • リージョンには 最低2つ以上のAZ が推奨

  • 自然災害が起きても、他のAZでサービス継続可能


🚀 高可用性とレイテンシーの設計

  • 同じリージョン内の複数AZ にアプリケーションをデプロイ

  • AZ間は低レイテンシーで通信可能

  • ELBやS3などのリージョンレベルのサービス は、自動的に冗長化され高可用性を確保


🌍 CloudFrontとエッジロケーション

用語説明
CloudFrontAWSのコンテンツ配信ネットワーク(CDN)
エッジロケーションユーザーに最も近い場所に配置されたデータキャッシュ

🛠 AWS サービスのプロビジョニング方法比較(概要)

方法特徴
オンデマンド必要なときにすぐに使える
自動スケーリングトラフィックに応じてスケール
マネージドサービスAWSがインフラ管理を代行

💡 ベストプラクティス

  • リージョン選定は コンプライアンス→近接性→機能→料金 の順で検討

  • 少なくとも2つ以上のAZ にデプロイ

  • リージョンレベルのサービス(例:ELB, S3)を活用して高可用性を確保

以下は、**モジュール3:AWS グローバルインフラストラクチャ(後半)**の内容をまとめた Markdown ノート です。


📦 エッジロケーションと CDN

💡 概要

用語説明
エッジロケーション世界中のユーザーの近くにデータをキャッシュして配置する場所。CloudFront が活用
CDN (Content Delivery Network)ユーザーの近くにコンテンツをキャッシュして配信速度と可用性を向上させる仕組み
Amazon CloudFrontAWSのCDNサービス。データ・動画・API などを高速配信
Amazon Route 53DNSサービス。グローバルな名前解決と低レイテンシールーティングに対応

☕ 例え話

  • 本店ではなく サテライト店(= エッジロケーション)を配置して顧客に近いところでサービスを提供

🖥 AWSの操作方法(リソースプロビジョニング)

🔧 操作手段一覧

操作手段特徴用途・利点
AWS マネジメントコンソールGUI操作、初心者向け学習、テスト環境構築に最適
AWS CLIコマンド操作、スクリプト化可作業の自動化、再現性向上
AWS SDK各種言語対応のAPIプログラムからAWSを操作(Java, Python など)
AWS Elastic Beanstalk環境自動構築(PaaS)アプリ開発者向けの簡易デプロイ環境
AWS CloudFormationInfrastructure as Code (IaC)コードベースで自動・再現可能な環境構築

📊 操作方法の比較表

ツール自動化GUI再利用性使用例
マネジメントコンソール初学者・設定確認
CLIバッチ処理・自動化
SDKアプリ組込み
BeanstalkWebアプリ展開
CloudFormationIaC・本番運用

🧰 Elastic Beanstalk vs CloudFormation

項目Elastic BeanstalkCloudFormation
用途Webアプリの迅速デプロイ複雑な環境のIaC
管理単位アプリケーション単位インフラ構成単位(スタック)
UIGUIありYAML/JSONファイルで定義
自由度中程度(AWSが管理)高(すべて自分で定義)
対象初中級者中上級者(DevOps/本番運用)

🎯 どちらも「AWSの環境を自動で作る」ツールですが、用途が違います。

比較項目Elastic BeanstalkCloudFormation
🧩 主な目的アプリをすぐに公開・運用したいインフラ全体をコードで管理したい
👨‍💻 ユーザー対象初心者〜中級者向け中級者〜上級者(DevOps 向け)
⚙️ 管理内容AWS が多く自動設定ユーザーが細かく設計
🔁 再利用性設定を保存・再展開可能テンプレートで何度でも環境構築可
🧰 主な使い方アプリのコードと設定を渡すだけJSON/YAML で構成を細かく定義
🎨 カスタマイズあまり自由度はない(簡単)非常に自由・細かい制御可能
🔄 スタック管理単一アプリの環境複数リソースの統合管理
🧠 学習コスト中〜高(IaCの理解が必要)

🍃 Elastic Beanstalk の具体例

使いたい人
「Pythonで作ったWebアプリを、すぐAWSで動かしたい」

💡 できること

  • アプリをアップロードするだけで…

    • EC2、RDS、ELBなどを自動で構築

    • スケーリング・モニタリングも自動で対応

    • 環境の更新もGUIで簡単!

例:
1. Python アプリのコードをzipにする
2. Elastic Beanstalk の画面でアップロード
3. 数分でアプリが動く環境が完成(EC2+ELB+Auto Scalingなど)

🧱 CloudFormation の具体例

使いたい人
「本番環境と全く同じ構成を、他のリージョンにも自動で作りたい」

💡 できること

  • 複雑な構成をコード(YAML/JSON)で完全再現

  • バージョン管理・自動デプロイに最適

  • CI/CD やチーム開発向け

例:S3 + Lambda + DynamoDB の構成を YAML で定義
Resources:
MyBucket:
Type: AWS::S3::Bucket
MyFunction:
Type: AWS::Lambda::Function
MyTable:
Type: AWS::DynamoDB::Table

このテンプレートを何度でも使って、まったく同じ環境を複数の場所に作れる。


📝 どちらを使うべき?

シチュエーションおすすめ
早くアプリを公開したい🌱 Elastic Beanstalk
インフラをコード化・自動化したい🧱 CloudFormation
DevOps/CDパイプラインを整備したい🧱 CloudFormation
アプリだけ触りたい、設定はお任せしたい🌱 Elastic Beanstalk

📌 まとめ

グローバルインフラの利点と操作性

  1. リージョン:地理的に分離された場所(コンプライアンス・可用性確保)

  2. AZ:数十マイル離れたデータセンター群(高可用性・耐障害性)

  3. エッジロケーション:CDNで低レイテンシーと高速配信

  4. APIベースの操作:コンソール、CLI、SDK、IaC(CloudFormation)などニーズに応じて選択

その他のリソース